package com.zh.auth.service;


import com.zh.auth.domain.dto.AddPermissionDto;
import com.zh.auth.domain.dto.PagePermissionDto;
import com.zh.auth.domain.dto.UpdatePermissionDto;
import com.zh.web.base.PageApiResult;
import com.zh.web.domain.auth.entity.Permission;

import java.util.List;
import java.util.Map;

public interface PermissionService {

     /**
      * 新增权限信息
      * @param addPermissionDto
      * @return
      */
     String addPermission(AddPermissionDto addPermissionDto);

     /**
      * 修改权限信息
      * @param updatePermissionDto
      * @return
      */
     String updatePermission(UpdatePermissionDto updatePermissionDto);

     /**
      * 分页查询权限
      * @param pagePermiDto
      * @return
      */
     PageApiResult<Permission> pagePermission(PagePermissionDto pagePermiDto);

     /**
      * 查询所有权限
      * @return
      */
     List<Permission> listPermission();

     /**
      * 删除权限集合
      * @param ids
      * @return
      */
     String deletePermission(List<Long> ids);

     /**
      * 根据code获取权限
      * @param code
      * @return
      */
     Permission getByCode(Integer code);

     /**
      * 根据权限名称获取权限code
      * @return
      */
     Map<String, Integer> getPermissionName2Code();

     /**
      * 永久删除
      * @param codes
      * @return
      */
     Integer removeIfMarkedAsDeleted(List<Integer> codes);
}
